Fonksiyonlar
Fonksiyon Nedir? Ne İşe Yarar?
Fonksiyonlar, belirli bir görevi yerine getiren ve gerektiğinde tekrar tekrar kullanılabilen kod bloklarıdır. Kod tekrarını azaltmak, programları modüler hale getirmek ve daha okunabilir kod yazmak için fonksiyonlar kullanılır. Python'da iki tür fonksiyon vardır: Gömülü Fonksiyonlar (Builtin Functions) ve Kullanıcı Tanımlı Fonksiyonlar (User-Defined Functions).
def selamla():
print("Selamlar Yapay Zeka Kampı!")
selamla()
Selamlar Yapay Zeka Kampı!
Yukarıdaki kod, selamla
isimli basit bir kullanıcı tanımlı fonksiyon tanımlar ve bu fonksiyonu çağırır. Fonksiyon çağrıldığında "Selamlar Yapay Zeka Kampı!" mesajını yazdırır.
selamla()
Selamlar Yapay Zeka Kampı!
selamla
fonksiyonu tekrar çağrıldığında, yine aynı mesajı yazdırır. Bu, fonksiyonların tekrar kullanılabilirliğinin bir örneğidir.
Aşağıdaki örneklerde, benzer bilgileri yazdırmak için tekrar eden kod blokları görüyoruz:
isim = "Melike"
soyisim = "Gökdemir"
işsis = "Windows"
şehir = "Denizli"
print("isim : ", isim)
print("soyisim : ", soyisim)
print("işletim sistemi: ", işsis)
print("şehir : ", şehir)
isim : Melike
soyisim : Gökdemir
işletim sistemi: Windows
şehir : Denizli
isim1 = "Melike"
soyisim1 = "Gökdemir"
işsis1 = "Ubuntu"
şehir1 = "Denizli"
print("isim : ", isim1)
print("soyisim : ", soyisim1)
print("işletim sistemi: ", işsis1)
print("şehir : ", şehir1)
print("-"*30)
isim2 = "Mahmut"
soyisim2 = "Çevik"
işsis2 = "Debian"
şehir2 = "Ankara"
print("isim : ", isim2)
print("soyisim : ", soyisim2)
print("işletim sistemi: ", işsis2)
print("şehir : ", şehir2)
print("-"*30)
isim : Melike
soyisim : Gökdemir
işletim sistemi: Ubuntu
şehir : Denizliisim : Mahmut
soyisim : Çevik
işletim sistemi: Debianşehir : Ankara
Yukarıdaki örneklerde, benzer bilgiler farklı kişiler için tekrar tekrar yazdırılmıştır. Bu tür tekrarlar, kodun okunabilirliğini ve yönetilebilirliğini azaltır. Ayrıca, aynı işlemi birden fazla kez yapmak zorunda kalırsınız.
Bunu daha iyi hale getirmek için bir fonksiyon tanımlayabiliriz:
Bir fonksiyon tanımlamak, kod tekrarını önler ve kodun daha temiz görünmesini sağlar.
def kayit_olustur(isim, soyisim, işsis, şehir):
print("isim : ", isim)
print("soyisim : ", soyisim)
print("işletim sistemi: ", işsis)
print("şehir : ", şehir)
print("-"*30)
kayit_olustur("Mehmet", "Öztaban", "Debian", "Ankara")
isim : Mehmet
soyisim : Öztaban
işletim sistemi: Debianşehir : Ankara
Bu fonksiyon, yukarıdaki tekrar eden kod bloklarının yerini alabilir ve farklı parametrelerle çağrılarak aynı işlevselliği sağlayabilir. Fonksiyonlar, kod tekrarını azaltmak ve programın genel yapısını iyileştirmek için mükemmel araçlardır.
Özel Fonksiyon Nedir?
Kullanıcı tarafından belirli ihtiyaçlara göre özel olarak oluşturulan fonksiyonlardır. Bu fonksiyonları kullanabilmek için önceden tanımlamamız gerekir.
def kayıt_oluştur(isim, soyisim, işsis, şehir):
print("-"*30)
print("isim : ", isim)
print("soyisim : ", soyisim)
print("işletim sistemi: ", işsis)
print("şehir : ", şehir)
print("-"*30)
Bu fonksiyon, kullanıcının ismi, soyismi, işletim sistemi ve şehir bilgilerini yazdırır.
kayıt_oluştur("Cemal", "Süreya", "linux", "İstanbul")
------------------------------
isim : Cemal
soyisim : Süreya
işletim sistemi: linux
şehir : İstanbul
------------------------------
kayıt_oluştur("Cemal", "Süreya", "linux", "İstanbul")
kayıt_oluştur("Şükrü", "Erbaş", "linux", "Yozgat")
kayıt_oluştur("Aziz", "Sancar", "MacOS ", "Mardin")
kayıt_oluştur("Sabiha", "Gökçen", "Android", "Bursa")
kayıt_oluştur(soyisim="Demir", isim="Ahmet", işsis="Debian", şehir="Ankara")
------------------------------
isim : Cemal
soyisim : Süreya
işletim sistemi: linux
şehir : İstanbul
------------------------------
------------------------------
isim : Şükrü
soyisim : Erbaş
işletim sistemi: linux
şehir : Yozgat
------------------------------
------------------------------
isim : Aziz
soyisim : Sancar
işletim sistemi: MacOS
şehir : Mardin
------------------------------
------------------------------
isim : Sabiha
soyisim : Gökçen
işletim sistemi: Android
şehir : Bursa
------------------------------
------------------------------
isim : Ahmet
soyisim : Demir
işletim sistemi: Debian
şehir : Ankara
------------------------------
Bu örnekler, özel fonksiyonların nasıl tanımlanıp kullanılacağını gösterir. Fonksiyonlar, parametre olarak verilen bilgileri belirli bir formatta yazdırır.
Bir sayının karesini hesaplayan fonksiyon:
sayı = 12
çıktı = "{} sayısının karesi {} sayısıdır"
print(çıktı.format(sayı, sayı**2))
12 sayısının karesi 144 sayısıdır
Bu kod parçası, bir sayının karesini hesaplar ve formatlı bir şekilde yazdırır.
sayı = 12
çıktı = "{} sayısının karesi {} sayısıdır"
print(çıktı.format(sayı, sayı**2))
#### programla ilgili başka kodlar ###
sayı = 15
print(çıktı.format(sayı, sayı**2))
### programla ilgili başka kodlar ###
sayı = 29
print(çıktı.format(sayı, sayı**2))
12 sayısının karesi 144 sayısıdır
15 sayısının karesi 225 sayısıdır
29 sayısının karesi 841 sayısıdır
Bu örnekte, çeşitli sayıların kareleri hesaplanıp yazdırılır.
Not: Çıktı değişkenini "***çıktı = '{} sayısının karesi {}, karekökü {} sayısı
dır'***" şeklinde güncelleyelim.
def kare_bul(sayı):
çıktı = "{} sayısının karesi {}, karekökü ise {} sayısıdır"
print(çıktı.format(sayı, sayı**2, sayı**0.5))
Bu fonksiyon, bir sayının hem karesini hem de karekökünü hesaplar ve yazdırır.
kare_bul(9)
9 sayısının karesi 81, karekökü ise 3.0 sayısıdır
Bu kod, kare_bul
fonksiyonunu kullanarak 9 sayısının karesini ve karekökünü hesaplar ve yazdırır.
lider = "Atatürk"
Bu kod, lider
adında bir değişken tanımlar ve değeri olarak "Atatürk" atar.
len(lider)
7
Bu kod, lider
değişkeninin uzunluğunu (karakter sayısını) hesaplar.
c = 0
for s in "Atatürk":
c += 1
print(c)
7
Bu kod, "Atatürk" kelimesindeki harf sayısını hesaplar.
def uzunluk(öğe):
c = 0
for s in öğe:
c += 1
print(c)
Bu fonksiyon, verilen öğenin uzunluğunu hesaplar.
uzunluk("Atatürk")
uzunluk("İstanbul")
uzunluk("Sosyal Sigortalar Kurumu")
7
8
24
Bu kodlar, çeşitli stringlerin uzunluklarını hesaplar ve yazdırır.
print("ai", "makine öğrenmesi", "veri bilimi")
ai makine öğrenmesi veri bilimi
Bu kod, verilen stringleri yan yana yazdırır.
def fonksiyon(*parametreler):
print(parametreler)
Bu fonksiyon, verilen sınırsız sayıda parametreyi bir demet (tuple) olarak yazdırır.
fonksiyon(1, 2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Bu kod, fonksiyon
u 1'den 9'a kadar olan sayılarla çağırır ve bu sayıları bir demet olarak yazdırır.
Not: Bu tür fonksiyonların alabileceği parametre sayısı pratikte sınırsızdır, ancak teknik olarak bu sayı 256 adedi geçemez.
def çarp(*sayılar):
sonuç = 1
for i in sayılar:
sonuç *= i # sonuç = sonuç * i
print(sonuç)
Bu fonksiyon, verilen tüm sayıları çarpar ve sonucu yazdırır.
return Deyimi
return
deyimi, bir fonksiyondan bir değer döndürmek için kullanılır. Bu deyimle fonksiyonun sonucunu bir değişkene atayabilir veya başka bir işlemde kullanabiliriz.
def nerelisin():
sehir = input("nerelisin? ")
return sehir
Bu fonksiyon, kullanıcıdan bir şehir ismi ister ve bu ismi döndürür.
print(f"Çok iyi! {nerelisin()} şehri keçisi ile ünlüdür.")
nerelisin? Ankara
Çok iyi! Ankara şehri keçisi ile ünlüdür.
Bu kod, nerelisin
fonksiyonun döndürdüğü değeri bir cümle içinde kullanır.
def fonk():
print(3)
print(7)
return
print(5)
fonk()
3
7
Bu fonksiyon, return
deyiminden sonra gelen kodu yürütmez; yani print(5)
satırı çalıştırılmaz.
x = 0
def fonk():
x = 1
return x
print('fonksiyon içindeki x: ', fonk())
print('fonksiyon dışındaki x: ', x)
fonksiyon içindeki x: 1
fonksiyon dışındaki x: 0
Bu kod, fonksiyon içinde ve dışında tanımlanan x
değişkenlerinin farklı olduğunu gösterir.
x = []
print('x\'in ilk hali:', x)
def değiştir():
print('x\'i değiştiriyoruz...')
x.append(1)
return x
değiştir()
print('x\'in son hali: ', x)
x'in ilk hali: []
x'i değiştiriyoruz...
x'in son hali: [1]
Bu kod, global bir değişken olan x
'in fonksiyon içinde nasıl değiştirildiğini gösterir.
x = set()
def fonk():
x.add(10)
return x
print(x)
print(fonk())
set()
{10}
Bu kod, bir küme (set
) üzerinde fonksiyon tarafından yapılan değişikliği gösterir. Fonksiyon çağrıldığında, küme içine 10
eklenir.
Gömülü Fonksiyonlar
Python dilinin kendisinde zaten tanımlanmış olan ve doğrudan kullanılabilen fonksiyonlardır. Python dilinde tanımlama yapmanıza gerek kalmadan doğrudan kullanılabilirler. Python programlamada sık kullanılan işlemleri hızlı ve kolay bir şekilde gerçekleştirmenize olanak sağlar.
abs():
Bir sayının mutlak değerini elde etmek için kullanılır.
round():
Sayıyı belli ölçütlere göre yukarı veya aşağıya doğru yuvarlamak için kullanılır.
list():
Farklı veri tiplerini liste adlı veri tipine dönüştürür.
type():
Bir nesnenin hangi veri tipine ait olduğunu söyler.
len():
Nesnelerin uzunluklarını hesaplar.
print():
Kullanıcıya birtakım mesajlar gösterir.